package czStvDpds;

import czStvDpds.logging.Logging;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Základ pro launcher. Samotný launcher rozšiřuje tuto třídu a může (ale
 * nemusí) přepsat její prázdné metody
 *
 * @author Jiří Švejda
 */
public class LauncherBase {

    static final Logger logger = Logging.getMainLogger();

    public void run() {
        init();
        Logging.flushAllHandlers();
    }

    public void init() {
        initLibs();
        initResources();
        initGraphics();
        initLogic();
        initNetwork();
        initInput();
        //menší zpoždění před nahráním mapy (aby se stihla kompletně inicializovat grafika)
//        try {
//            Thread.sleep(100);
//        } catch (InterruptedException ex) {
//            Logger.getLogger(LauncherBase.class.getName()).log(Level.SEVERE, null, ex);
//        }
        try {
            initMaps();
        } catch (IOException ex) {
            logger.info("Nepodarilo se inicalizovat mapy");
        }
    }

    public void initLibs() {
    }

    public void initResources() {
    }

    public void initGraphics() {
    }

    public void initInput() {
    }
    
    public void initLogic() {
    }

    /**
     * Pouze pro debugovací účely, ve finální verzi hry se budou mapy načítat
     * mimo startovací sekvenci
     */
    public void initMaps() throws IOException {
    }

    public void initNetwork() {
    }
}